package com.cyan.note.dto.manager.dashboard;

import lombok.Data;
import java.math.BigDecimal;
import java.util.List;

/**
 * 打手状态概览DTO
 * 
 * @author ZhangzhenYu
 * @since 2025-01-15
 */
@Data
public class WorkerStatusOverviewDTO {

    /**
     * 总打手数
     */
    private Integer totalWorkers;

    /**
     * 在线打手数
     */
    private Integer onlineWorkers;

    /**
     * 空闲打手数
     */
    private Integer idleWorkers;

    /**
     * 工作中打手数
     */
    private Integer workingWorkers;

    /**
     * 休息中打手数
     */
    private Integer restingWorkers;

    /**
     * 离线打手数
     */
    private Integer offlineWorkers;

    /**
     * 在线率
     */
    private BigDecimal onlineRate;

    /**
     * 工作率
     */
    private BigDecimal workingRate;

    /**
     * 打手等级分布
     */
    private List<WorkerLevelStats> levelDistribution;

    /**
     * 打手排行榜（按完成订单数）
     */
    private List<WorkerRankingDTO> topWorkers;

    /**
     * 今日活跃打手数
     */
    private Integer todayActiveWorkers;

    /**
     * 昨日活跃打手数
     */
    private Integer yesterdayActiveWorkers;

    /**
     * 活跃度变化
     */
    private BigDecimal activityChange;

    @Data
    public static class WorkerLevelStats {
        /**
         * 等级
         */
        private String level;

        /**
         * 等级名称
         */
        private String levelName;

        /**
         * 人数
         */
        private Integer count;

        /**
         * 占比
         */
        private BigDecimal percentage;
    }

    @Data
    public static class WorkerRankingDTO {
        /**
         * 打手ID
         */
        private Long workerId;

        /**
         * 打手昵称
         */
        private String workerName;

        /**
         * 等级
         */
        private String level;

        /**
         * 今日完成订单数
         */
        private Integer todayOrders;

        /**
         * 今日收入
         */
        private BigDecimal todayIncome;

        /**
         * 在线时长（小时）
         */
        private BigDecimal onlineHours;

        /**
         * 客户评分
         */
        private BigDecimal rating;

        /**
         * 排名
         */
        private Integer rank;
    }
}